レジストリエディタの使い方
A:(延さん)
ついにお兄さんも、鬼門のレジストリエディタに足を踏み入れる覚悟ができましたか。
Q:(一郎兄さん)
うん。どうしてもレジストリエディタでないとできないことがあるみたいだからね。
A:(延さん)
確かにそうですね。私にとっては完全に日常の作業になっています。
Q:(憲さん)
憲さんです。でもレジストリをいじるのは危険なんですよね。
A:(延さん)
万が一失敗した場合の危険度はすごいものがあるけれどね。バックアップさえちゃんととっておけばいいし。失敗しないよういやればいいだけだよ。
Q:(憲さん)
バックアップというのはどうやってとるのでしょうか?
A:(延さん)
その話はこちら「レジストリのバックアップ」をどうぞ。
ちゃんとバックアップしたら、レジストリエディタを起動してみましょう。プログラムはWindowsフォルダにある「regedit.exe」です。エクスプローラなどで直接ダブルクリックしてもいいですが、次のように「スタートメニュー」->「ファイル名を指定して実行(R)...」で「regedit」と指定しても実行できます。
レジストリエディタを起動すると、次のようなちょっとエクスプローラに似た画面が出てきます。
[レジストリエディタ]
左側にツリービューがあり、右側にリストビューがあってエクスプローラそっくりでしょ。レジストリデータは、ツリービューでエクスプローラで言うところのフォルダのように見えるキーと呼ばれるものと、そのキーに所属する、エクスプローラで言うのファイルにあたるような値というものがあります。またこの値には3種類あり、ひとつの「文字列」値と2つの数値データである「バイナリ」値と「DWORD」値です。下の図を見てください。
[各データ]
ここにサンプルのデータを作ってあります。ツリービューにはHKEY_CLASSES_ROOT\KeyDataというキーがあります。それを開いているのが上図です。右のリストには「名前」が「(標準)」「data」「flag」「string」という4つの値があります。このうち一番上の「(標準)」という名前の値は「文字列」値で「ab」とかいた紙のようなアイコン(このアイコンが「文字列」値であることを示す)になっています。この値は特別な値で全てのキーに存在し、消すことのできないものです。
その下の「data」という値は「DWORD」値です。数値データなのでアイコンが「011110」と書いた紙になります。その下の「flag」という値も数値データですが、こちらは「バイナリ」値です。一番下の「string」という値は「(標準)」と同じ「文字列」値です。
構成物はこれだけです。これらを変更したり、追加したり、削除したしすればいいだけです。
Q:(貴子)
結構簡単そうね。
A:(延さん)
作業そのものはとても簡単だよ。ただこのエディタは普通のエディタをちょっと違うんだ。普通ワードなんかでもエディタ上で行った編集作業は、すぐに実体(編集対象ファイルなど)に反映されないでしょ。「保存」という行為を行うことで反映されるばすです。しかしレジストリエディタはなにか作業をするとすぐにレジストリに反映されてしまうんだ。しかも「やり直し(UNDO)機能」もない。
Q:(貴子)
ということは間違えたら元に戻せないのね。
A:(延さん)
そういうこと。もちろん元の状態を覚えているか、記録してあれば、その通りもう一度設定すればいいわけだけどね。とにかくそのことを覚悟で慎重に作業しなければならないということだよ。
ではまず既存値の「変更」からやってみましょう。「値」の変更は、「値」の名前をダブルクリックするか下図のように、変更したい値を選択して、プルダウンメニュー「編集(E)」->「変更(M)」を選択します。
[変更メニュー]
では実際「文字列」値である「string」を編集してみましょう。上記のいずれかを実行すると下図のようなダイアログが表示されます。
[文字列編集ダイアログ]
ここは「値のデータ(V)」欄に文字を記述して、「OK」ボタンを押すだけです。日本語を使っても構いません。
次に「バイナリ」値である「flag」を編集します。
[バイナリ編集ダイアログ]
これはちょっと注意が必要です。変更するのは先頭の4つの0ではなく、5番目からです。またここは16進数で書かねばなりません。16進数というものがどういうものであるか分からない人はあまりいじらない方がいいかもしれません。ちょっとだけ説明すると、我々が日常使っている数値は普通10進数です。これは10になると位が一つ上がります。16進数とは16になるまで位が上がりません。表現する文字として普通の数字を使いますが、6文字足りないのでa、b、c、d、e、fの6つのアルファベットで補います。
値を入力したら「OK」ボタンを押すのは同じです。
次に「DWORD」値である「date」を編集してみましょう。
[DWORD編集ダイアログ1 (16進数)]
これも「バイナリ」値同様数値なので、16進数で表すのですが、ここでは10進数でも入力することができます。下に同じ数値を10進数で表したものも記述します。
[DWORD編集ダイアログ2 (10進数)]
リストにも16進数と10進数の双方が書かれています。
変更作業はこれだけです。次に「追加」作業をやってみましょう。追加したい部分を選択して、「編集(E)」->「新規(N)」メニューを選択します。
[新規作成メニュー]
ここで作りたい要素を選択します。一つキーを作ってみましょう。
[キーの新規作成]
図のように「新規キー #1」という感じで、新規作成され、名称がすぐ入力できる状態になります。ここで好きな名称に書き換えてます。値に関してもほぼ同じです。値を作成したら、そこにデータを入力するのは編集したときと同じです。
キーや値を削除したい場合は、「編集(E)」->「削除(D)」メニューで削除できます。もとに戻せないのでくれぐれも気をつけて行ってください。
またキー名や値の名前を変更したい場合は、「編集(E)」->「名前の変更(R)」メニューでできます。
今まで説明したメニューの殆どは操作対象のキーや値を右クリックした時に表示されるポップアップメニューからでも選択できますから、慣れてきたらやってみて下さい。
後キーなどを検索する機能もあるので、使ってみて下さい。特に説明のいることではないと思います。
最後にレジストリエディタには部分的なデータをテキストファイルに書き出したり、そのファイルからそのデータを取り込んだりする機能があります。このデータはテキストファイルなのでメモ帳などで見ることもできますし、編集することもできます。
Q:(あきつぐ)
つまりレジストリを部分的にバックアップできるということ。
A:(延さん)
まあそうとも言える。今部分的と言ったけど厳密には部分的でなく全部できます。ただこの機能は部分的なものにつかって欲しいと思います。つまりレジストリ全体のバックアップや復元の代用に使って欲しくないということです。理由は後で述べます。
部分的と言っても、あるキー以下という指定までで、ある値のみということはできません。ファイルに吐き出したいキーを選択して、プルダウンメニュー「レジストリ(R)」->「レジストリファイルの書き出し(E)...」を選択します。
[レジストリファイル書き出しメニュー]
するとファイルを指定する次のようなダイアログがでます。
[書き出しファイル指定ダイアログ]
適当な名称を指定して保存すると、指定名称に拡張子が「REG」のレジストリファイルができます。先ほども言ったように中身はテキストファイルです。今サンプルデータのレジストリファイルをメモ帳で見てみましょう。
[レジストリファイルの内容]
REGEDIT4 [HKEY_CLASSES_ROOT\KeyData] "string"="文字データ" "flags"=hex:12,34,ab,cd "date"=dword:0000dc27 |
このようなデータが書かれています。これを今度レジストリに取り込むには、プルダウンメニューの「レジストリ(R)」->「レジストリファイルの取り込み(I)」を選択して、このファイルを指定してもいいですが、このファイルと直接ダブルクリックするだけでもOKです。
しかしこの方法では、同じ値の書き換えと不足データの書き足ししかしません。つまりレジストリファイルになくて、レジストリにあるものを削除することはしないのです。したがって厳密な意味での復元にはなりません。
消してしまったデータの復元にはとても向いていますが、整合性が崩れてしまったレジストリの修復には威力を発揮しない場合が多いです。ですからレジストリの全体的なバックアップはこちら「レジストリのバックアップ」で説明している方法を必ずとるようにして下さい。